<template>
  <div id="aCoursesList" class="bg-fa of">
    <!-- /课程详情 开始 -->
    <section class="container">
      <section class="path-wrap txtOf hLh30">
        <a href="#" title class="c-999 fsize14">首页</a>
        \
        <a href="#" title class="c-999 fsize14">{{courseInfo.subjectParentName}}</a>
        \
        <span class="c-333 fsize14">{{courseInfo.subjectName}}</span>
      </section>
      <div>
        <article class="c-v-pic-wrap" style="height: 357px;">
          <section class="p-h-video-box" id="videoPlay">
            <img height="357px" :src="courseInfo.cover" :alt="courseInfo.subjectName" class="dis c-v-pic">
          </section>
        </article>
        <aside class="c-attr-wrap">
          <section class="ml20 mr15">
            <h2 class="hLh30 txtOf mt15">
              <span class="c-fff fsize24">{{courseInfo.subjectName}}</span>
            </h2>
            <section class="c-attr-jg">
              <span class="c-fff">价格：</span>
              <b class="c-yellow" style="font-size:24px;">￥{{courseInfo.price}}</b>
            </section>
            <section class="c-attr-mt c-attr-undis">
              <span class="c-fff fsize14">主讲： {{courseInfo.teacherName}}&nbsp;&nbsp;&nbsp;</span>
            </section>
            <section class="c-attr-mt of">
              <span class="ml10 vam">
                <em class="icon18 scIcon"></em>
                <a class="c-fff vam" title="收藏" href="#">收藏</a>
              </span>
            </section>
            <section class="c-attr-mt">
              <!--判断是否购买过改课程，如果没有购买课程且改课程的价格不为0则显示立即购买-->
              <a title="立即购买" class="comm-btn c-btn-3" @click.prevent="createOrder"
                 v-if="Number(courseInfo.price) !== 0 && !status">立即购买</a>
              <a title="立即观看" class="comm-btn c-btn-3" v-else>立即观看</a>
            </section>
          </section>
        </aside>
        <aside class="thr-attr-box">
          <ol class="thr-attr-ol <!--clearfix-->">
            <li>
              <p>&nbsp;</p>
              <aside>
                <span class="c-fff f-fM">购买数</span>
                <br>
                <h6 class="c-fff f-fM mt10">{{courseInfo.buyCount}}</h6>
              </aside>
            </li>
            <li>
              <p>&nbsp;</p>
              <aside>
                <span class="c-fff f-fM">课时数</span>
                <br>
                <h6 class="c-fff f-fM mt10">{{courseInfo.lessonNum}}</h6>
              </aside>
            </li>
            <li>
              <p>&nbsp;</p>
              <aside>
                <span class="c-fff f-fM">浏览数</span>
                <br>
                <h6 class="c-fff f-fM mt10">{{courseInfo.viewCount}}</h6>
              </aside>
            </li>
          </ol>
        </aside>
        <div class="clear"></div>
      </div>
      <!-- /课程封面介绍 -->
      <div class="mt20 c-infor-box">
        <article class="fl col-7">
          <section class="mr30">
            <div class="i-box">
              <div>
                <section id="c-i-tabTitle" class="c-infor-tabTitle c-tab-title">
                  <a name="c-i" class="current" title="课程详情">课程详情</a>
                </section>
              </div>
              <article class="ml10 mr10 pt20">
                <div>
                  <h6 class="c-i-content c-infor-title">
                    <span>课程介绍</span>
                  </h6>
                  <div class="course-txt-body-wrap">
                    <section class="course-txt-body">
                      <!--需要显示HTML的样式-->
                      <p v-html="courseInfo.description">
                      </p>
                    </section>
                  </div>
                </div>
                <!-- /课程介绍 -->
                <div class="mt50">
                  <h6 class="c-g-content c-infor-title">
                    <span>课程大纲</span>
                  </h6>
                  <section class="mt20">
                    <div class="lh-menu-wrap">
                      <menu id="lh-menu" class="lh-menu mt10 mr10">
                        <ul>
                          <!-- 文件目录 -->
                          <li class="lh-menu-stair" v-for="chapter in chapterList" :key="chapter.id">
                            <a href="javascript: void(0)" :title="chapter.title" class="current-1">
                              <em class="lh-menu-i-1 icon18 mr10"></em>{{chapter.title}}
                            </a>
                            <ol class="lh-menu-ol" style="display: block;">
                              <li class="lh-menu-second ml30" v-for="video in chapter.children" :key="video.id">
                                <a :href="'/player/' + video.videoSourceId" title target="_blank">
                                  <span class="fr">
                                    <i class="free-icon vam mr10">免费试听</i>
                                  </span>
                                  <em class="lh-menu-i-2 icon16 mr5">&nbsp;</em>{{video.title}}
                                </a>
                              </li>
                            </ol>
                          </li>
                        </ul>
                      </menu>
                    </div>
                  </section>
                </div>
                <!-- /课程大纲 -->
              </article>
            </div>
          </section>
        </article>
        <aside class="fl col-3">
          <div class="i-box">
            <div>
              <section class="c-infor-tabTitle c-tab-title">
                <a title href="javascript:void(0)">主讲讲师</a>
              </section>
              <section class="stud-act-list">
                <ul style="height: auto;">
                  <li>
                    <div class="u-face">
                      <a href="#">
                        <img :src="courseInfo.avatar" width="50" height="50" alt>
                      </a>
                    </div>
                    <section class="hLh30 txtOf">
                      <a class="c-333 fsize16 fl" href="#">{{courseInfo.teacherName}}</a>
                    </section>
                    <section class="hLh20 txtOf">
                      <span class="c-999">{{courseInfo.intro}}</span>
                    </section>
                  </li>
                </ul>
              </section>
            </div>
          </div>
        </aside>
        <div class="clear"></div>
      </div>
    </section>
    <!-- /课程详情 结束 -->

    <div class="mt50 commentHtml">
      <div>
        <h6 class="c-c-content c-infor-title" id="i-art-comment">
          <span class="commentTitle">课程评论</span>
        </h6>
        <section class="lh-bj-list pr mt20 replyhtml">
          <ul>
            <li class="unBr">
              <aside class="noter-pic">
                <img width="50" height="50" class="picImg" src="~/assets/img/avatar-boy.gif">
              </aside>
              <div class="of">
                <section class="n-reply-wrap">
                  <fieldset>
                    <textarea name="" v-model="commentInfo.content" placeholder="输入您要评论的文字"
                              id="commentContent"></textarea>
                  </fieldset>
                  <p class="of mt5 tar pl10 pr10">
                    <span class="fl "><tt class="c-red commentContentmeg" style="display: none;"></tt></span>
                    <input type="button" @click="addComment" value="回复" class="lh-reply-btn">
                  </p>
                </section>
              </div>
            </li>
          </ul>
        </section>
        <section class="">
          <section class="question-list lh-bj-list pr">
            <ul class="pr10">
              <li v-for="comment in commentList" :key="comment.id">
                <aside class="noter-pic">
                  <img width="50" height="50" class="picImg" :src="comment.avatar">
                </aside>
                <div class="of">
              <span class="fl">
                    <font class="fsize12 c-blue">
                      {{comment.nickname}}</font>
                    <font class="fsize12 c-999 ml5">评论：</font></span>
                </div>
                <div class="noter-txt mt5">
                  <p>{{comment.content}}</p>
                </div>
                <div class="of mt5">
                  <span class="fr"><font class="fsize12 c-999 ml5">{{comment.gmtCreate}}</font></span>
                </div>
              </li>

            </ul>
          </section>
        </section>

        <!-- 公共分页 开始 -->
        <el-pagination
          @current-change="handleCurrentChange"
          align="center"
          style="margin-top: 15px"
          background
          :current-page="page"
          :page-size="size"
          layout="prev, pager, next, jumper"
          :total="total">
        </el-pagination>
        <!--      <div class="paging">
                &lt;!&ndash; undisable这个class是否存在，取决于数据属性hasPrevious &ndash;&gt;
                <a
                  :class="{undisable: !data.hasPrevious}"
                  href="#"
                  title="首页"
                  @click.prevent="gotoPage(1)">首</a>
                <a
                  :class="{undisable: !data.hasPrevious}"
                  href="#"
                  title="前一页"
                  @click.prevent="gotoPage(data.current-1)">&lt;</a>
                <a
                  v-for="page in data.pages"
                  :key="page"
                  :class="{current: data.current == page, undisable: data.current == page}"
                  :title="'第'+page+'页'"
                  href="#"
                  @click.prevent="gotoPage(page)">{{ page }}</a>
                <a
                  :class="{undisable: !data.hasNext}"
                  href="#"
                  title="后一页"
                  @click.prevent="gotoPage(data.current+1)">&gt;</a>
                <a
                  :class="{undisable: !data.hasNext}"
                  href="#"
                  title="末页"
                  @click.prevent="gotoPage(data.pages)">末</a>
                <div class="clear"/>
              </div>-->
        <!-- 公共分页 结束 -->

      </div>

    </div>

  </div>
</template>

<script>
  import CourseApi from '@/api/course';
  import cookie from "js-cookie";
  import OrderApi from '@/api/order';

  export default {
    data() {
      return {
        page: 0,
        size: 5,
        total: 0,
        //评论列表
        commentList: [],
        //用户信息
        userInfo: {},
        //提交的评论的信息
        commentInfo: {},
        //课程信息
        courseInfo: {},
        //章节小节信息
        chapterList: [],

        //判断是否已经购买改课程信息
        status: false,
      }
    },
    created() {
      this.courseId = this.$route.params.id;
    },
    mounted() {
      this.init();
      this.getCommentInfo();
    },

    methods: {
      //初始化所有信息，判断用户是否购买过改课程
      //如果是游客登录则后端不进行RPC调用，缺少userId，默认返回false
      //如果登录则发送远程请求获取用户的课程状态
      async init() {
        const {data} = await CourseApi.getCourseInfo(this.courseId);
        if (data.code !== 20000) return this.$message.error(data.message);
        this.courseInfo = data.data.courseInfo;
        this.chapterList = data.data.chapterList;
        //返回该用户是否购买过改课程信息
        this.status = data.data.status;
      },

      //获取所有的评论信息
      async getCommentInfo() {
        const {data} = await CourseApi.getCommentInfo(this.page, this.size, this.courseId);
        if (data.code !== 20000) return this.$message.error(data.message);
        this.total = data.data.total;
        this.commentList = data.data.data;
      },

      //从cookie中获取用户信息
      getUserInfoFromCookie() {
        //由于存放在cookie中的userInfo为json字符串
        //需要将字符串转为JSON对象
        let result = cookie.get('jn_user');
        if (result) {
          this.userInfo = JSON.parse(result);
        } else {
          this.$router.push('/login');
        }
      },

      //处理页码改变的事件
      handleCurrentChange(newPage) {
        this.page = newPage;
        this.getCommentInfo();
      },

      //提交评论信息
      async addComment() {
        this.getUserInfoFromCookie();
        if (!this.userInfo.id) return this.$message.error('请先登录');
        if (!this.commentInfo.content) return this.$message.error('请输入评论信息');
        this.commentInfo.courseId = this.courseInfo.id;
        this.commentInfo.teacherId = this.courseInfo.teacherId;
        this.commentInfo.memberId = this.userInfo.id;
        this.commentInfo.nickname = this.userInfo.nickname;
        this.commentInfo.avatar = this.userInfo.avatar;
        const {data} = await CourseApi.addComment(this.commentInfo);
        if (data.code !== 20000) return this.$message.error(data.message);
        this.$message.success('发表评论成功');
        this.commentInfo = {};
        this.getCommentInfo();
      },

      //生成订单
      async createOrder() {
        this.getUserInfoFromCookie();
        if (!this.userInfo.id) return this.$message.error('请先登录');
        const {data} = await OrderApi.createOrder(this.courseInfo.id);
        if (data.code !== 20000) return this.$message.error('订单创建失败');
        //跳转到订单显示页面携带订单号
        await this.$router.push('/order/' + data.data.data);
      },
    }
  };
</script>
